# 分专业做每个班的人数统计，使用直方图
import pandas as pd
# 导入柱状图


from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline

from Page.sql import search_major

major = []
# 基础柱状图
xa = pd.DataFrame(search_major("信息安全"), columns=['name', 'class'])  # 这里列出你想要的列名
xa_group = xa.groupby('class')['name'].count()
major.append(xa_group)
rj = pd.DataFrame(search_major("软件工程"), columns=['name', 'class'])  # 这里列出你想要的列名
rj_group = rj.groupby('class')['name'].count()
major.append(rj_group)
jk = pd.DataFrame(search_major("计算机科学与技术"), columns=['name', 'class'])  # 这里列出你想要的列名
jk_group = jk.groupby('class')['name'].count()
major.append(jk_group)
yy = pd.DataFrame(search_major("医学影像技术"), columns=['name', 'class'])  # 这里列出你想要的列名
yy_group = yy.groupby('class')['name'].count()
major.append(yy_group)
list_name = ['信息安全', '软件工程', '计算机科学与技术', '医学影像技术']
color = ['#3399FF', '#F2861B', 'green', 'pink']
tl = Timeline()
for i in range(0, 4):
    c = (
        Bar()
        .add_xaxis(major[i].index.tolist())
        # .reversal_axis()
        .add_yaxis("", major[i].tolist(), gap="80%", color=color[i])

        .set_global_opts(
            legend_opts=opts.LegendOpts(is_show=False),
            title_opts=opts.TitleOpts
            (title="2020级计算机学院人数统计",
             ),
            yaxis_opts=opts.AxisOpts(name="人数"),
            xaxis_opts=opts.AxisOpts(name="班级"),
        )

    )
    tl.add(c, list_name[i])
    tl.add_schema(is_auto_play=True)
tl.render("基础柱状图.html")
